Java可以使用HttpClient发送Http请求、上传文件等,非常的方便
Maven
org.apache.httpcomponentshttpclient4.5.3org.apache.httpcomponentshttpmime4.5.3上传代码1:
public static void upload2() throws ClientProtocolException, IOException{CloseableHttpClient httpClient = HttpClientBuilder.create().build();CloseableHttpResponse httpResponse = null;RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(200000).setSocketTimeout(200000000).build();HttpPost httpPost = new HttpPost("http://localhost:8080/WEY.WebApp/auth/right/right/receiveFile.html");httpPost.setConfig(requestConfig);MultipartEntityBuilder multipartEntityBuilder = MultipartEntityBuilder.create();//multipartEntityBuilder.setCharset(Charset.forName("UTF-8"));//File file = new File("F:\\Ken\\1.PNG");//FileBody bin = new FileBody(file); File file = new File("F:\\Ken\\abc.pdf"); //multipartEntityBuilder.addBinaryBody("file", file,ContentType.create("image/png"),"abc.pdf");//当设置了setSocketTimeout参数后,以下代码上传PDF不能成功,将setSocketTimeout参数去掉后此可以上传成功。上传图片则没有个限制//multipartEntityBuilder.addBinaryBody("file",file,ContentType.create("application/octet-stream"),"abd.pdf"); multipartEntityBuilder.addBinaryBody("file",file);//multipartEntityBuilder.addPart("comment", new StringBody("This is comment", ContentType.TEXT_PLAIN));multipartEntityBuilder.addTextBody("comment", "this is comment");HttpEntity httpEntity = multipartEntityBuilder.build();httpPost.setEntity(httpEntity);httpResponse = httpClient.execute(httpPost);HttpEntity responseEntity = httpResponse.getEntity();int statusCode= httpResponse.getStatusLine().getStatusCode();if(statusCode == 200){BufferedReader reader = new BufferedReader(new InputStreamReader(responseEntity.getContent()));StringBuffer buffer = new StringBuffer();String str = "";while(!StringUtil.isRealEmpty(str = reader.readLine())) {buffer.append(str);}System.out.println(buffer.toString());}httpClient.close();if(httpResponse!=null){httpResponse.close();}}上传代码2:
public static void upload() { CloseableHttpClient httpclient = HttpClients.createDefault(); //CloseableHttpClient httpclient = HttpClientBuilder.create().build();try { HttpPost httppost = new HttpPost("http://localhost:8080/WEY.WebApp/auth/right/right/receiveFile.html");RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(200000).setSocketTimeout(200000).build();httppost.setConfig(requestConfig);FileBody bin = new FileBody(new File("F:\\Ken\\abc.pdf")); StringBody comment = new StringBody("This is comment", ContentType.TEXT_PLAIN);HttpEntity reqEntity = MultipartEntityBuilder.create().addPart("file", bin).addPart("comment", comment).build();httppost.setEntity(reqEntity);System.out.println("executing request " + httppost.getRequestLine()); CloseableHttpResponse response = httpclient.execute(httppost); try { System.out.println(response.getStatusLine()); HttpEntity resEntity = response.getEntity(); if (resEntity != null) { String responseEntityStr = EntityUtils.toString(response.getEntity());System.out.println(responseEntityStr);System.out.println("Response content length: " + resEntity.getContentLength()); } EntityUtils.consume(resEntity); } finally { response.close(); } } catch (ClientProtocolException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { try { httpclient.close(); } catch (IOException e) { e.printStackTrace(); } } }普通POST请求public String post() throws ClientProtocolException, IOException{CloseableHttpClient httpClient = HttpClientBuilder.create().build();CloseableHttpResponse httpResponse = null;HttpPost httpPost = new HttpPost("http://localhost:8080/WEY.WebApp/auth/right/right/receivePost.html");RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(20000).setSocketTimeout(22000).build();httpPost.setConfig(requestConfig);List params = new ArrayList();params.add(new BasicNameValuePair("user.loginId", "Lin"));params.add(new BasicNameValuePair("user.employeeName","令狐冲"));UrlEncodedFormEntity entity = new UrlEncodedFormEntity(params,Charset.forName("UTF-8"));httpPost.setEntity(entity);httpResponse = httpClient.execute(httpPost);HttpEntity responseEntity = httpResponse.getEntity();if(responseEntity!=null){String content = EntityUtils.toString(responseEntity,"UTF-8");System.out.println(content);}if(httpResponse!=null){httpResponse.close();}if(httpClient!=null){httpClient.close();}return null;}